let mysqlUtil = require("./mysql-util");
let sqlParam = [];
for (var i = 0; i < 30000; i++) {
	let sqlParamarray = [];
	sqlParamarray[0] = "姓名"+i;
	sqlParamarray[1] = Math.floor(Math.random () * 900) + 100;
	sqlParam[i] = sqlParamarray;
};
// 声明一个同步方法, 这里要求有 SQL 语句的基础
// 在 beginTransaction 和 commit 之间可以执行多次 query 方法
let ceshi = async function () {
    // 获取连接
    let conn = await mysqlUtil();
    // 开启事物
    await new Promise((resolve, reject) => {
        conn.beginTransaction(err => {
            if (err) {
                reject(err);
            } else {
                resolve();
            }
        });
    });
    // 执行第一个 SQL 语句
    let result1 = await new Promise((resolve, reject) => {
        // let sqlStr = "INSERT INTO user (UserName, UserSex) values (?, ?)";//添加数据
    	let sqlStr = "UPDATE user SET UserSex = '189' WHERE id = 35";//修改数据
        // let sqlStr = "select * from user where UserSex>=500 and UserSex<=600";//查询数据
        // for (var i = 0; i < sqlParam.length; i++) {
        // 	conn.query(sqlStr, sqlParam[i], function (err, ret) {
	       //      if (err) { // 回滚之前的数据库操作, 直至碰到 beginTransaction
	       //          return conn.rollback(() => {
	       //              resolve(err);
	       //          });
	       //      }
	       //      resolve(ret);
	       //  });
        // };
        conn.query(sqlStr, function (err, ret) {
            if (err) { // 回滚之前的数据库操作, 直至碰到 beginTransaction
                return conn.rollback(() => {
                    resolve(err);
                });
            }
            resolve(ret);
        });
        
    });
    // console.log(result1);
    // 执行第二个 SQL 语句
    let result2 = await new Promise((resolve, reject) => {
        let sqlStr = "select * from user where UserSex>=500 and UserSex<=600";
        conn.query(sqlStr, function (err, ret) {
            if (err) {
                // 回滚之前的数据库操作, 直至碰到 beginTransaction
                return conn.rollback(() => {
                    resolve(err);
                });
            }
            resolve(ret);
        });
    });
    console.log(result2.length);
    // 关闭事务
    await new Promise((resolve, reject) => {
        conn.commit(err => {
            if (err) {
                reject(err);
            } else {
                resolve();
            }
        });
    });
　　 conn.release();　　
};

// 调用测试方法
ceshi();